
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGBaseTypes.h>
#include <OpenSG/OSGField.h>
#include <OpenSG/OSGFieldFactory.h>

// Using =======================================================================
using namespace boost::python;

// Module ======================================================================
void Export_src_pyste_FieldFactory()
{
    class_< osg::FieldFactory, boost::noncopyable >("FieldFactory", no_init)
        .def("createField", (osg::Field* (osg::FieldFactory::*)(osg::UInt32) )&osg::FieldFactory::createField, return_value_policy< manage_new_object >())
        .def("createField", (osg::Field* (osg::FieldFactory::*)(const osg::Char8*) )&osg::FieldFactory::createField, return_value_policy< manage_new_object >())
        .def("getNFieldTypes", &osg::FieldFactory::getNFieldTypes)
        .def("getFieldType", (osg::FieldType* (*)(osg::UInt32))&osg::FieldFactory::getFieldType, return_internal_reference< 1 >())
        .def("getFieldType", (osg::FieldType* (*)(const osg::Char8*))&osg::FieldFactory::getFieldType, return_internal_reference< 1 >())
        .def("getFieldTypeName", &osg::FieldFactory::getFieldTypeName)
        .def("the", &osg::FieldFactory::the, return_value_policy< reference_existing_object >())
        .staticmethod("the")
        .staticmethod("getFieldType")
        .staticmethod("getNFieldTypes")
    ;

}

